#ifndef PyMPI_CONFIG_UNKNOWN_H
#define PyMPI_CONFIG_UNKNOWN_H

/* ------------------------------------------------------------------------- */

#if defined(PyMPI_MISSING_MPI) && (PyMPI_MISSING_MPI == 1)
/* - */
#define PyMPI_MISSING_MPI_UNDEFINED 1
#define PyMPI_MISSING_MPI_ANY_SOURCE 1
#define PyMPI_MISSING_MPI_ANY_TAG 1
#define PyMPI_MISSING_MPI_PROC_NULL 1
/* - */
#define PyMPI_MISSING_MPI_Aint 1
#define PyMPI_MISSING_MPI_Datatype 1
#define PyMPI_MISSING_MPI_DATATYPE_NULL 1
#define PyMPI_MISSING_MPI_UB 1
#define PyMPI_MISSING_MPI_LB 1
#define PyMPI_MISSING_MPI_PACKED 1
#define PyMPI_MISSING_MPI_BYTE 1
#define PyMPI_MISSING_MPI_CHAR 1
#define PyMPI_MISSING_MPI_SHORT 1
#define PyMPI_MISSING_MPI_INT 1
#define PyMPI_MISSING_MPI_LONG 1
#define PyMPI_MISSING_MPI_LONG_LONG_INT 1
#define PyMPI_MISSING_MPI_UNSIGNED_CHAR 1
#define PyMPI_MISSING_MPI_UNSIGNED_SHORT 1
#define PyMPI_MISSING_MPI_UNSIGNED 1
#define PyMPI_MISSING_MPI_UNSIGNED_LONG 1
#define PyMPI_MISSING_MPI_FLOAT 1
#define PyMPI_MISSING_MPI_DOUBLE 1
#define PyMPI_MISSING_MPI_LONG_DOUBLE 1
#define PyMPI_MISSING_MPI_SHORT_INT 1
#define PyMPI_MISSING_MPI_2INT 1
#define PyMPI_MISSING_MPI_LONG_INT 1
#define PyMPI_MISSING_MPI_FLOAT_INT 1
#define PyMPI_MISSING_MPI_DOUBLE_INT 1
#define PyMPI_MISSING_MPI_LONG_DOUBLE_INT 1
/* - */
#define PyMPI_MISSING_MPI_CHARACTER 1
#define PyMPI_MISSING_MPI_LOGICAL 1
#define PyMPI_MISSING_MPI_INTEGER 1
#define PyMPI_MISSING_MPI_REAL 1
#define PyMPI_MISSING_MPI_DOUBLE_PRECISION 1
#define PyMPI_MISSING_MPI_COMPLEX 1
#define PyMPI_MISSING_MPI_DOUBLE_COMPLEX 1
#define PyMPI_MISSING_MPI_INTEGER1 1
#define PyMPI_MISSING_MPI_INTEGER2 1
#define PyMPI_MISSING_MPI_INTEGER4 1
#define PyMPI_MISSING_MPI_REAL2 1
#define PyMPI_MISSING_MPI_REAL4 1
#define PyMPI_MISSING_MPI_REAL8 1
/* - */
#define PyMPI_MISSING_MPI_BOTTOM 1
#define PyMPI_MISSING_MPI_Address 1
#define PyMPI_MISSING_MPI_Type_size 1
#define PyMPI_MISSING_MPI_Type_extent 1
#define PyMPI_MISSING_MPI_Type_lb 1
#define PyMPI_MISSING_MPI_Type_ub 1
#define PyMPI_MISSING_MPI_Type_dup 1
#define PyMPI_MISSING_MPI_Type_contiguous 1
#define PyMPI_MISSING_MPI_Type_vector 1
#define PyMPI_MISSING_MPI_Type_indexed 1
#define PyMPI_MISSING_MPI_Type_hvector 1
#define PyMPI_MISSING_MPI_Type_hindexed 1
#define PyMPI_MISSING_MPI_Type_struct 1
#define PyMPI_MISSING_MPI_Type_commit 1
#define PyMPI_MISSING_MPI_Type_free 1
#define PyMPI_MISSING_MPI_Pack 1
#define PyMPI_MISSING_MPI_Unpack 1
#define PyMPI_MISSING_MPI_Pack_size 1
/* - */
#define PyMPI_MISSING_MPI_Status 1
#define PyMPI_MISSING_MPI_Get_count 1
#define PyMPI_MISSING_MPI_Get_elements 1
#define PyMPI_MISSING_MPI_Test_cancelled 1
/* - */
#define PyMPI_MISSING_MPI_Request 1
#define PyMPI_MISSING_MPI_REQUEST_NULL 1
#define PyMPI_MISSING_MPI_Request_free 1
#define PyMPI_MISSING_MPI_Wait 1
#define PyMPI_MISSING_MPI_Test 1
#define PyMPI_MISSING_MPI_Request_get_status 1
#define PyMPI_MISSING_MPI_Cancel 1
#define PyMPI_MISSING_MPI_Waitany 1
#define PyMPI_MISSING_MPI_Testany 1
#define PyMPI_MISSING_MPI_Waitall 1
#define PyMPI_MISSING_MPI_Testall 1
#define PyMPI_MISSING_MPI_Waitsome 1
#define PyMPI_MISSING_MPI_Testsome 1
#define PyMPI_MISSING_MPI_Start 1
#define PyMPI_MISSING_MPI_Startall 1
/* - */
#define PyMPI_MISSING_MPI_Op 1
#define PyMPI_MISSING_MPI_OP_NULL 1
#define PyMPI_MISSING_MPI_MAX 1
#define PyMPI_MISSING_MPI_MIN 1
#define PyMPI_MISSING_MPI_SUM 1
#define PyMPI_MISSING_MPI_PROD 1
#define PyMPI_MISSING_MPI_LAND 1
#define PyMPI_MISSING_MPI_BAND 1
#define PyMPI_MISSING_MPI_LOR 1
#define PyMPI_MISSING_MPI_BOR 1
#define PyMPI_MISSING_MPI_LXOR 1
#define PyMPI_MISSING_MPI_BXOR 1
#define PyMPI_MISSING_MPI_MAXLOC 1
#define PyMPI_MISSING_MPI_MINLOC 1
#define PyMPI_MISSING_MPI_REPLACE 1
#define PyMPI_MISSING_MPI_Op_free 1
#define PyMPI_MISSING_MPI_User_function 1
#define PyMPI_MISSING_MPI_Op_create 1
/* - */
#define PyMPI_MISSING_MPI_Group 1
#define PyMPI_MISSING_MPI_GROUP_NULL 1
#define PyMPI_MISSING_MPI_GROUP_EMPTY 1
#define PyMPI_MISSING_MPI_Group_free 1
#define PyMPI_MISSING_MPI_Group_size 1
#define PyMPI_MISSING_MPI_Group_rank 1
#define PyMPI_MISSING_MPI_Group_translate_ranks 1
#define PyMPI_MISSING_MPI_IDENT 1
#define PyMPI_MISSING_MPI_CONGRUENT 1
#define PyMPI_MISSING_MPI_SIMILAR 1
#define PyMPI_MISSING_MPI_UNEQUAL 1
/* - */
#define PyMPI_MISSING_MPI_Group_compare 1
#define PyMPI_MISSING_MPI_Group_union 1
#define PyMPI_MISSING_MPI_Group_intersection 1
#define PyMPI_MISSING_MPI_Group_difference 1
#define PyMPI_MISSING_MPI_Group_incl 1
#define PyMPI_MISSING_MPI_Group_excl 1
#define PyMPI_MISSING_MPI_Group_range_incl 1
#define PyMPI_MISSING_MPI_Group_range_excl 1
/* - */
#define PyMPI_MISSING_MPI_Comm 1
#define PyMPI_MISSING_MPI_COMM_NULL 1
#define PyMPI_MISSING_MPI_COMM_SELF 1
#define PyMPI_MISSING_MPI_COMM_WORLD 1
#define PyMPI_MISSING_MPI_Comm_free 1
#define PyMPI_MISSING_MPI_Comm_group 1
#define PyMPI_MISSING_MPI_Comm_size 1
#define PyMPI_MISSING_MPI_Comm_rank 1
#define PyMPI_MISSING_MPI_Comm_compare 1
#define PyMPI_MISSING_MPI_Topo_test 1
#define PyMPI_MISSING_MPI_Comm_test_inter 1
#define PyMPI_MISSING_MPI_Abort 1
#define PyMPI_MISSING_MPI_Send 1
#define PyMPI_MISSING_MPI_Recv 1
#define PyMPI_MISSING_MPI_Sendrecv 1
#define PyMPI_MISSING_MPI_Sendrecv_replace 1
#define PyMPI_MISSING_MPI_BSEND_OVERHEAD 1
#define PyMPI_MISSING_MPI_Buffer_attach 1
#define PyMPI_MISSING_MPI_Buffer_detach 1
#define PyMPI_MISSING_MPI_Bsend 1
#define PyMPI_MISSING_MPI_Ssend 1
#define PyMPI_MISSING_MPI_Rsend 1
#define PyMPI_MISSING_MPI_Isend 1
#define PyMPI_MISSING_MPI_Ibsend 1
#define PyMPI_MISSING_MPI_Issend 1
#define PyMPI_MISSING_MPI_Irsend 1
#define PyMPI_MISSING_MPI_Irecv 1
#define PyMPI_MISSING_MPI_Send_init 1
#define PyMPI_MISSING_MPI_Bsend_init 1
#define PyMPI_MISSING_MPI_Ssend_init 1
#define PyMPI_MISSING_MPI_Rsend_init 1
#define PyMPI_MISSING_MPI_Recv_init 1
#define PyMPI_MISSING_MPI_Probe 1
#define PyMPI_MISSING_MPI_Iprobe 1
#define PyMPI_MISSING_MPI_Barrier 1
#define PyMPI_MISSING_MPI_Bcast 1
#define PyMPI_MISSING_MPI_Gather 1
#define PyMPI_MISSING_MPI_Gatherv 1
#define PyMPI_MISSING_MPI_Scatter 1
#define PyMPI_MISSING_MPI_Scatterv 1
#define PyMPI_MISSING_MPI_Allgather 1
#define PyMPI_MISSING_MPI_Allgatherv 1
#define PyMPI_MISSING_MPI_Alltoall 1
#define PyMPI_MISSING_MPI_Alltoallv 1
#define PyMPI_MISSING_MPI_Reduce 1
#define PyMPI_MISSING_MPI_Allreduce 1
#define PyMPI_MISSING_MPI_Reduce_scatter 1
#define PyMPI_MISSING_MPI_Scan 1
#define PyMPI_MISSING_MPI_Comm_dup 1
#define PyMPI_MISSING_MPI_Comm_create 1
#define PyMPI_MISSING_MPI_Comm_split 1
#define PyMPI_MISSING_MPI_CART 1
#define PyMPI_MISSING_MPI_Cart_create 1
#define PyMPI_MISSING_MPI_Cartdim_get 1
#define PyMPI_MISSING_MPI_Cart_get 1
#define PyMPI_MISSING_MPI_Cart_rank 1
#define PyMPI_MISSING_MPI_Cart_coords 1
#define PyMPI_MISSING_MPI_Cart_shift 1
#define PyMPI_MISSING_MPI_Cart_sub 1
#define PyMPI_MISSING_MPI_Cart_map 1
#define PyMPI_MISSING_MPI_Dims_create 1
#define PyMPI_MISSING_MPI_GRAPH 1
#define PyMPI_MISSING_MPI_Graph_create 1
#define PyMPI_MISSING_MPI_Graphdims_get 1
#define PyMPI_MISSING_MPI_Graph_get 1
#define PyMPI_MISSING_MPI_Graph_map 1
#define PyMPI_MISSING_MPI_Graph_neighbors_count 1
#define PyMPI_MISSING_MPI_Graph_neighbors 1
#define PyMPI_MISSING_MPI_Intercomm_create 1
#define PyMPI_MISSING_MPI_Comm_remote_group 1
#define PyMPI_MISSING_MPI_Comm_remote_size 1
#define PyMPI_MISSING_MPI_Intercomm_merge 1
#define PyMPI_MISSING_MPI_Errhandler_get 1
#define PyMPI_MISSING_MPI_Errhandler_set 1
#define PyMPI_MISSING_MPI_Handler_function 1
#define PyMPI_MISSING_MPI_Errhandler_create 1
/* - */
#define PyMPI_MISSING_MPI_Init 1
#define PyMPI_MISSING_MPI_Finalize 1
#define PyMPI_MISSING_MPI_Initialized 1
#define PyMPI_MISSING_MPI_Finalized 1
/* - */
#define PyMPI_MISSING_MPI_MAX_PROCESSOR_NAME 1
#define PyMPI_MISSING_MPI_Get_processor_name 1
#define PyMPI_MISSING_MPI_Wtime 1
#define PyMPI_MISSING_MPI_Wtick 1
#define PyMPI_MISSING_MPI_Pcontrol 1
/* - */
#define PyMPI_MISSING_MPI_Errhandler 1
#define PyMPI_MISSING_MPI_ERRHANDLER_NULL 1
#define PyMPI_MISSING_MPI_ERRORS_RETURN 1
#define PyMPI_MISSING_MPI_ERRORS_ARE_FATAL 1
#define PyMPI_MISSING_MPI_Errhandler_free 1
/* - */
#define PyMPI_MISSING_MPI_KEYVAL_INVALID 1
#define PyMPI_MISSING_MPI_TAG_UB 1
#define PyMPI_MISSING_MPI_HOST 1
#define PyMPI_MISSING_MPI_IO 1
#define PyMPI_MISSING_MPI_WTIME_IS_GLOBAL 1
#define PyMPI_MISSING_MPI_Attr_get 1
#define PyMPI_MISSING_MPI_Attr_put 1
#define PyMPI_MISSING_MPI_Attr_delete 1
#define PyMPI_MISSING_MPI_Copy_function 1
#define PyMPI_MISSING_MPI_Delete_function 1
#define PyMPI_MISSING_MPI_DUP_FN 1
#define PyMPI_MISSING_MPI_NULL_COPY_FN 1
#define PyMPI_MISSING_MPI_NULL_DELETE_FN 1
#define PyMPI_MISSING_MPI_Keyval_create 1
#define PyMPI_MISSING_MPI_Keyval_free 1
/* - */
#define PyMPI_MISSING_MPI_SUCCESS 1
#define PyMPI_MISSING_MPI_ERR_LASTCODE 1
#define PyMPI_MISSING_MPI_ERR_COMM 1
#define PyMPI_MISSING_MPI_ERR_GROUP 1
#define PyMPI_MISSING_MPI_ERR_TYPE 1
#define PyMPI_MISSING_MPI_ERR_REQUEST 1
#define PyMPI_MISSING_MPI_ERR_OP 1
#define PyMPI_MISSING_MPI_ERR_BUFFER 1
#define PyMPI_MISSING_MPI_ERR_COUNT 1
#define PyMPI_MISSING_MPI_ERR_TAG 1
#define PyMPI_MISSING_MPI_ERR_RANK 1
#define PyMPI_MISSING_MPI_ERR_ROOT 1
#define PyMPI_MISSING_MPI_ERR_TRUNCATE 1
#define PyMPI_MISSING_MPI_ERR_IN_STATUS 1
#define PyMPI_MISSING_MPI_ERR_PENDING 1
#define PyMPI_MISSING_MPI_ERR_TOPOLOGY 1
#define PyMPI_MISSING_MPI_ERR_DIMS 1
#define PyMPI_MISSING_MPI_ERR_ARG 1
#define PyMPI_MISSING_MPI_ERR_OTHER 1
#define PyMPI_MISSING_MPI_ERR_UNKNOWN 1
#define PyMPI_MISSING_MPI_ERR_INTERN 1
/* - */
#define PyMPI_MISSING_MPI_MAX_ERROR_STRING 1
#define PyMPI_MISSING_MPI_Error_class 1
#define PyMPI_MISSING_MPI_Error_string 1
/* - */
#endif /* PyMPI_MISSING_MPI */

/* ------------------------------------------------------------------------- */

#include "mpi-12.h"
#include "mpi-20.h"
#include "mpi-22.h"
#include "mpi-30.h"

/* ------------------------------------------------------------------------- */

/* These types are Open MPI extensions */
#define PyMPI_MISSING_MPI_LOGICAL1 1
#define PyMPI_MISSING_MPI_LOGICAL2 1
#define PyMPI_MISSING_MPI_LOGICAL4 1
#define PyMPI_MISSING_MPI_LOGICAL8 1

/* These types are difficult to implement portably */
#define PyMPI_MISSING_MPI_INTEGER16 1
#define PyMPI_MISSING_MPI_REAL2 1
#define PyMPI_MISSING_MPI_COMPLEX4 1

/* These types are not available in MPICH(1) */
#if defined(MPICH_NAME) && (MPICH_NAME==1)
#define PyMPI_MISSING_MPI_INTEGER1
#define PyMPI_MISSING_MPI_INTEGER2
#define PyMPI_MISSING_MPI_INTEGER4
#define PyMPI_MISSING_MPI_REAL4
#define PyMPI_MISSING_MPI_REAL8
#endif

/* ------------------------------------------------------------------------- */

#endif /* !PyMPI_CONFIG_UNKNOWN_H */
